package com.homedo.odin.solution.model.request.mng;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.homedo.odin.solution.model.base.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

@ApiModel(description = "百名设计师信息录入接口")
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class MngHundredStylistInfoUpdateRequestBean extends BaseBean {

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", required = true)
    @NotNull(message = "用户id非法参数")
    @Min(message = "用户id非法参数", value = 0)
    private Integer userId;

    /**
     * 设计师姓名
     */
    @ApiModelProperty(value = "设计师姓名", required = true)
    @NotEmpty(message = "设计师姓名不能为空")
    private String stylistName;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别: 0女1男", required = true)
    @NotNull(message = "sex参数错误:0女1男")
    @Range(min = 0, max = 1, message = "sex参数错误:0女1男")
    private Integer sex;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄", required = true)
    @NotNull(message = "age非法参数")
    @Range(min = 0, max = 255, message = "年龄参数过大")
    private Integer age;

    /**
     * 专业年限
     */
    @ApiModelProperty(value = "专业年限", required = true)
    @NotNull(message = "professionalLife专业年限非法参数")
    @Range(min = 0, max = 100, message = "professionalLife专业年限过大")
    private Integer professionalLife;

    /**
     * 所在单位
     */
    @ApiModelProperty(value = "所在单位", required = true)
    @NotEmpty(message = "所在单位不能为空")
    private String company;

    /**
     * 文化程度
     */
    @ApiModelProperty(value = "文化程度", required = true)
    @NotEmpty(message = "文化程度不能为空")
    private String culture;

    /**
     * 技术职称
     */
    @ApiModelProperty(value = "技术职称", required = true)
    @NotEmpty(message = "技术职称不能为空")
    private String technologyTitle;

    /**
     * 专业资质
     */
    @ApiModelProperty(value = "专业资质", required = true)
    @NotEmpty(message = "专业资质不能为空")
    private String professionalQualification;

    /**
     * 设计师个人简介
     */
    @ApiModelProperty(value = "设计师个人简介", required = true)
    @NotEmpty(message = "设计师个人简介不能为空")
    private String stylistIntroduction;

    /**
     * 获奖情况  选填
     */
    @ApiModelProperty("获奖情况  选填")
    private String awardsInfo;

//    /**
//     *项目名称
//     */
//    @ApiModelProperty(value = "项目名称",required = true)
//    @NotEmpty(message = "项目名称不能为空")
//    private String projectName;
//
//    /**
//     *项目时间
//     */
//    @ApiModelProperty(value = "项目时间",required = true)
//    private String projectTime;
//
//    /**
//     *项目地点
//     */
//    @ApiModelProperty(value = "项目地点",required = true)
//    @NotEmpty(message = "项目地点不能为空")
//    private String projectAddress;
//
//    /**
//     *项目规模
//     */
//    @ApiModelProperty(value = "项目规模",required = true)
//    @NotEmpty(message = "项目规模不能为空")
//    private String projectScale;
//
//    /**
//     *主要负责工作
//     */
//    @ApiModelProperty(value = "主要负责工作",required = true)
//    @NotEmpty(message = "主要负责工作不能为空")
//    private String projectPrimaryWork;

    /**
     * 项目经历
     */
    @ApiModelProperty("项目经历")
    @NotEmpty(message = "项目经历不能为空")
    private String projectExperience;

    /**
     * 参选项目名称
     */
    @ApiModelProperty(value = "参选项目名称")
    @NotEmpty(message = "参选项目名称不能为空")
    private String joinProjectName;

    /**
     * 参选项目地址
     */
    @ApiModelProperty(value = "参选项目地址")
    @NotEmpty(message = "参选项目地址不能为空")
    private String joinProjectAddress;


    /**
     * 参选项目工程类型  1:新建  2:改建  3:扩建  4:已建  5:其他
     */
    @ApiModelProperty(value = "参选项目工程类型  1:新建  2:改建  3:扩建  4:已建  5:其他", required = true)
    @NotNull(message = "joinProjectType参选项目工程类型非法参数 1:新建  2:改建  3:扩建  4:已建  5:其他")
    @Min(message = "joinProjectType参选项目工程类型非法参数 1:新建  2:改建  3:扩建  4:已建  5:其他", value = 0)
    private Integer joinProjectType;

    /**
     * 工程类型选择 其他备注信息
     */
    @ApiModelProperty(value = "工程类型选择 其他备注信息")
    private String joinProjectTypeInfo;

    /**
     * 参选项目建筑面积
     */
    @ApiModelProperty(value = "参选项目建筑面积")
    @NotNull(message = "参选项目建筑面积不能为空")
    @Range(min = 0, max = Integer.MAX_VALUE, message = "参选项目建筑面积参数过大")
    private Integer joinProjectArea;

    /**
     * 参选项目地上层数
     */
    @ApiModelProperty(value = "参选项目地上层数", required = true)
    @NotNull(message = "joinOvergroundNumber参选项目地上层数非法参数")
    @Range(min = 0, max = Integer.MAX_VALUE, message = "joinOvergroundNumber参选项目地上层数参数过大")
    private Integer joinOvergroundNumber;

    /**
     * 参选项目地下层数
     */
    @ApiModelProperty(value = "参选项目地下层数", required = true)
    @Range(min = 0, max = Integer.MAX_VALUE, message = "joinUndergroundNumber参选项目地下层数参数过大")
    private Integer joinUndergroundNumber;


    /**
     * 参选项目智能化工程总投资   选填
     */
    @ApiModelProperty("参选项目智能化工程总投资   选填")
    private BigDecimal joinInvestmentCount;

    /**
     * 参选项目开工日期
     */
    @ApiModelProperty(value = "参选项目开工日期", required = true)
    @NotEmpty(message = "参选项目开工日期不能为空")
    private String joinProjectStartTime;

    /**
     * 参选项目竣工日期
     */
    @ApiModelProperty(value = "参选项目竣工日期", required = true)
    @NotEmpty(message = "参选项目竣工日期不能为空")
    private String joinProjectEndTime;

    /**
     * 建设单位名称
     */
    @ApiModelProperty(value = "建设单位名称", required = true)
    @NotEmpty(message = "建设单位名称不能为空")
    private String joinBuildCompanyName;

    /**
     * 智能化系统总承包单位
     */
    @ApiModelProperty(value = "智能化系统总承包单位", required = true)
    @NotEmpty(message = "智能化系统总承包单位不能为空")
    private String joinJobCompany;


    /**
     * 参选项目设计作品简介及申报理由
     */
    @ApiModelProperty(value = "参选项目设计作品简介及申报理由", required = true)
    @NotEmpty(message = "参选项目设计作品简介及申报理由不能为空")
    private String joinProductionIntroduction;

    /**
     * 大区分支
     */
    @ApiModelProperty("大区分支")
    private String areaBranch;

    /**
     * 推荐人
     */
    @ApiModelProperty("推荐人")
    private String referrer;

    /**
     * 是否参与智能建筑节(西安)现场颁奖仪式  0：不参与 1：参与
     */
    @ApiModelProperty(value = "是否参与智能建筑节(西安)现场颁奖仪式  0：不参与 1：参与")
    @NotNull(message = "joinPrizePresentation参与智能建筑节颁奖参数错误 0：不参与 1：参与")
    @Range(min = 0, max = 1, message = "joinPrizePresentation参与智能建筑节颁奖参数错误 0：不参与 1：参与")
    private Integer joinPrizePresentation;

}